博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
笔记70 Spring Boot快速入门(八)(重要)
阅读量:5291 次
发布时间:2019-06-14

本文共 3263 字,大约阅读时间需要 10 分钟。

上传文件

一、方式一

1.上传页面

upLoadPage.html

1  2  3  4     
5 Title 6 7 8

Thymeleaf

9
10 选择图片:
11
12
13 14

<1>. method="post" 是必须的

<2>. enctype="multipart/form-data" 是必须的,表示提交二进制文件
<3>. name="file" 是必须的,和后续服务端对应
<4>. accept="image/*" 表示只选择图片

2.上传文件页面跳转控制器,用来跳转到上传页面。

1     @RequestMapping("upLoadPage")2     public String uploadPage(){3         return "upLoadPage";4     }

3.上传文件控制器,用来上传文件,并跳转到显示页面。

1     @RequestMapping(value = "/upload",method = RequestMethod.POST) 2     public String upload(HttpServletRequest request, @RequestParam("file")MultipartFile file, Model model){ 3  4         try { 5             String fileName=System.currentTimeMillis()+file.getOriginalFilename(); 6             String destFileName=request.getServletContext().getRealPath("")+"uploaded"+File.separator+fileName; 7             File destFile=new File(destFileName); 8             destFile.getParentFile().mkdirs(); 9             file.transferTo(destFile);10             //System.out.println(destFileName);11             model.addAttribute("fileName",fileName);12         }catch (FileNotFoundException e){13             e.printStackTrace();14             return "上传失败,"+e.getMessage();15         }catch (IOException e){16             e.printStackTrace();17             return "上传失败,"+e.getMessage();18         }19         return "showImage";20     }

<1>. 接受上传的文件

@RequestParam("file") MultipartFile file

<2>. 根据时间戳创建新的文件名,这样即便是第二次上传相同名称的文件,也不会把第一次的文件覆盖了

String fileName = System.currentTimeMillis()+file.getOriginalFilename();

<3>. 通过req.getServletContext().getRealPath("") 获取当前项目的真实路径,然后拼接前面的文件名

String destFileName=req.getServletContext().getRealPath("")+"uploaded"+File.separator+fileName;

<4>. 第一次运行的时候,这个文件所在的目录往往是不存在的,这里需要创建一下目录

File destFile = new File(destFileName);
destFile.getParentFile().mkdirs();

<5>. 把浏览器上传的文件复制到希望的位置

file.transferTo(destFile);

<6>. 把文件名放在model里,以便后续显示用

model.addAttribute("fileName",fileName);

4.显示页面

showImage.html

1  2  3  4     
5 Title 6 7 8 9 10

5.application.properties

1 #spring.mvc.view.prefix=/WEB-INF/jsp/2 #spring.mvc.view.suffix=.jsp3 spring.http.multipart.max-file-size=10MB4 spring.http.multipart.max-request-size=10MB5 6 spring.thymeleaf.enabled=true7 8 server.port=5050

设置上传文件的大小,默认是1m,太小了,文件稍微大一点就会出错。修改端口,启用thymeleaf模板

6.测试

文件的存储路径:

二、方式二(将文件保存在项目目录下)

1.在pom.xml增加依赖,使项目支持JSP。

1         
2
3
javax.servlet
4
javax.servlet-api
5 6
7
8
javax.servlet
9
jstl
10
11
12
org.apache.tomcat.embed
13
tomcat-embed-jasper
14

2.在main目录下,新建-> webapp/WEB-INF/jsp 目录,用来存放视图。webapp存放视图和资源(上传的文件)

3.showImage.jsp、upLoadPage.jsp中的内容直接把html中的复制过来即可。

1 <%@ page language="java" contentType="text/html; charset=UTF-8"2     pageEncoding="UTF-8"%>3     4 

4.application.properties中添加对jsp视图的解析路径,并将thymeleaf模板关闭。

1 spring.mvc.view.prefix=/WEB-INF/jsp/2 spring.mvc.view.suffix=.jsp 4.spring.thymeleaf.enabled=false

5.测试

上传文件所在位置:

代码:

转载于:https://www.cnblogs.com/lyj-gyq/p/9351285.html

你可能感兴趣的文章
2017-2018-2偏微分方程复习题解析10
查看>>
Java抽象类和接口的比较
查看>>
web技术工具帖
查看>>
SpringBoot项目中常见的注解
查看>>
一次性搞明白 service和factory区别
查看>>
select下拉二级联动
查看>>
iOS UI控件5-UIPickerView
查看>>
深入Java虚拟机读书笔记第三章安全
查看>>
IO流 总结一
查看>>
素数筛选法
查看>>
php连接postgresql数据库
查看>>
Visual studio之C# 调用系统软键盘(外部"osk.exe")
查看>>
hdu 4506(数学,循环节+快速幂)
查看>>
Spring mvc 教程
查看>>
CentOS DesktopEntry
查看>>
基于python语言的自动化邮件发送总结
查看>>
TSQL点滴
查看>>
Selenium_Python接口-Alert类
查看>>
linux远程win7教程
查看>>
移动应用开发选型:向左还是向右?
查看>>